/*
 51. Exibir o seguinte seletor de opções e em função de uma escolha, solicitar os dados necessários para o
 cálculo da respectiva área. Enviar mensagem de erro se o usuário escolher uma opção inexistente.
 Encerrar o programa somente quando selecionada a opção de finalização.
 1 – Triângulo
 2 – Quadrado
 3 – Retângulo
 4 – Círculo
 5 – Fim de processo
 */

package pacote_controle;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.InputMismatchException;
import java.util.Scanner;

public class Exercicio_51 {
    public static void main(String[] args) {

        int z = 0;
        do {
            System.out.println("Digite uma opção do MENU.");
            System.out.println("\t1 – Triângulo.\n"
                    + "\t2 – Quadrado.\n"
                    + "\t3 – Retângulo.\n"
                    + "\t4 – Circulo.\n"
                    + "\t5 – Fim de processo.");
            Scanner input = new Scanner(System.in);
            
            File arquivo = new File("Questão_51.txt");

            try {
                z = input.nextInt();
                switch (z) {
                    case 1:
                        PrintWriter arq = new PrintWriter(arquivo);
                        
                        System.out.println("Você escolheu calcular a área do Triângulo:");
                        System.out.println("Informe o valor da base: ");
                        Scanner entrada = new Scanner(System.in);
                        float base = entrada.nextFloat();
                        arq.println(base);
                        System.out.println("Informe o valor da altura: ");
                        float altura = entrada.nextFloat();
                        arq.println(altura);
                        arq.close();

                        FileReader leituraArquivo;
                        leituraArquivo = new FileReader("Questão_51.txt");
                        BufferedReader triangulo = new BufferedReader(leituraArquivo);
                        
                        String baseTriangulo = triangulo.readLine();
                        float baseTrianguloFloat = Float.parseFloat(baseTriangulo);
                        String alturaTriangulo = triangulo.readLine();
                        float alturaTrianguloFloat = Float.parseFloat(alturaTriangulo);
                        float areaTriangulo = (baseTrianguloFloat * alturaTrianguloFloat)/2;
                        arq.close();
                        System.out.println("A area do triangulo é: " + areaTriangulo);
                        break;
                        
                    case 2:
                        
                        PrintWriter arq2 = new PrintWriter(arquivo);
                        
                        System.out.println("Você escolheu calcular a área do Quadrado:");
                        Scanner entrada2 = new Scanner(System.in);
                        System.out.println("Informe o valor da aresta: ");
                        float aresta = entrada2.nextFloat();
                        arq2.println(aresta);
                        arq2.close();

                        FileReader leituraArquivo2;
                        leituraArquivo2 = new FileReader("Questão_51.txt");
                        BufferedReader quadrado = new BufferedReader(leituraArquivo2);
                        
                        String aresta1 = quadrado.readLine();
                        float arestaLeitura = Float.parseFloat(aresta1);
                        float areaQuadrado = arestaLeitura * arestaLeitura;
                        arq2.close();
                        System.out.println("A area do quadrado é: " + areaQuadrado);
                        break;
                        
                    case 3:
                        PrintWriter arq3 = new PrintWriter(arquivo);
                        
                        System.out.println("Você escolheu calcular a área do Retângulo:");
                        Scanner entrada3 = new Scanner(System.in);
                        System.out.println("Informe o valor da base: ");
                        float baseRetangulo = entrada3.nextFloat();
                        System.out.println("Informe o valor da altura: ");
                        float alturaRetangulo = entrada3.nextFloat();
                        arq3.println(baseRetangulo);
                        arq3.println(alturaRetangulo);
                        arq3.close();

                        FileReader leituraArquivo3;
                        leituraArquivo3 = new FileReader("Questão_51.txt");
                        BufferedReader retangulo = new BufferedReader(leituraArquivo3);
                        
                        String baseRetanguloLeitura = retangulo.readLine();
                        float baseFloat = Float.parseFloat(baseRetanguloLeitura);
                        String alturaRetanguloLeitura = retangulo.readLine();
                        float alturaFloat = Float.parseFloat(alturaRetanguloLeitura);
                        float areaRetangulo = baseFloat * alturaFloat;
                        arq3.close();
                        System.out.println("A area do triangulo é: " + areaRetangulo);
                        break; 
                        
                    case 4:
                        PrintWriter arq4 = new PrintWriter(arquivo);
                        
                        System.out.println("Você escolheu calcular a área do Circulo:");
                        Scanner entrada4 = new Scanner(System.in);
                        System.out.println("Informe o valor do raio: ");
                        float raio = entrada4.nextFloat();
                        arq4.println(raio);
                        arq4.close();

                        FileReader leituraArquivo4;
                        leituraArquivo4 = new FileReader("Questão_51.txt");
                        BufferedReader circulo = new BufferedReader(leituraArquivo4);
                        
                        String raioCirculo = circulo.readLine();
                        float raioCirculoFloat = Float.parseFloat(raioCirculo);
                        float areaCirculo = (float) (Math.pow(raioCirculoFloat, 2) * Math.PI);
                        arq4.close();
                        System.out.println("A area do triangulo é: " + areaCirculo);
                        break;
                        
                    case 5:
                        System.out.println("Fim de processo.");
                        break;
                    default:
                        System.out.println("\n\nDigite uma opção válida.\n");
                        break;
                }
            } catch (InputMismatchException e) {
                System.out.println("Erro! Digite uma opção válida.");
            } catch (FileNotFoundException ex) {
                System.out.println("Erro!" + ex);
            } catch (IOException ex) {
                System.out.println("Erro!" + ex);
            }
        } while (z != 5);
    }
}
